System and method for obtaining software programs

ABSTRACT

An example video game program download system and method apparatus for downloading a video game program to a target video game platform in which a processing system receives a download request from the target video game platform requesting downloading of a video game program that executes on a native video game platform different than the target video game platform. In response thereto, the requested video game program is sent along with a program for providing compatibility between the target and native video game platforms.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.12/588,503 filed Oct. 16, 2009, which is a division of application Ser.No. 12/395,698 filed Mar. 1, 2009, which was a continuation ofapplication Ser. No. 12/216,990 filed Jul. 14, 2008, which was acontinuation of application Ser. No. 11/984,543 filed Nov. 19, 2007,which claims priority to U.S. Provisional Application No. 60/859,487filed Nov. 17, 2006.

COPYRIGHTS PRESERVED

A portion of the disclosure of this patent document contains materialwhich is subject to copyright protection. The copyright owner has noobjection to the facsimile reproduction by anyone of the patent documentor the patent disclosure as it appears in the United States Patent andTrademark Office patent file or records, but otherwise reserves allcopyright rights whatsoever.

TECHNICAL FIELD

This patent application relates to systems and methods for downloadingvideo game programs, for example, from a server to a video game systemsuch as a video game console or a hand-held video game machine.

BACKGROUND AND SUMMARY

The ever-increasing power of CPUs and graphics processors has permitteddevelopment of interactive graphics systems that rapidly generatecomplex images. Video game consoles use this power so that players can,for example, control video game characters in game worlds rich inreal-world images and sounds. Video game consoles can now be developedwith outputs to high-definition televisions and associated speakerarrays to provide remarkably realistic gaming experiences.

It has generally been the case that more complicated player inputs arerequired to interact with the game worlds created by such high-poweredvideo game consoles. Thus rapid inputs to a wide variety of inputdevices such as buttons, joysticks, cross-switches and the like arerequired to navigate in these game worlds. While certain game playerswill have an appropriate combination of time, patience and skill to playvideo games on these high-powered consoles, other game players arelikely to find the experience frustrating.

Moreover, new video game consoles are often not configured to executegame programs developed for other platforms. These other platforms mayinclude earlier generations of consoles from a particular manufactureror current- and earlier-generation consoles from other manufacturers.Players are thereby inconvenienced by needing multiple consoles to playvideo games for multiple platforms and by connecting and disconnectingthese consoles from their televisions depending on the game beingplayed.

This patent application describes example systems and methods that,among other things, provide a fun and intuitive input device for playinggames. Moreover, other example systems and methods permit players toplay games developed for other consoles such as earlier generationconsoles.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a non-limiting example video game programdownload system;

FIG. 2 shows a non-limiting example video game system 102;

FIG. 3 is a non-limiting example block diagram of the video game console200 shown in FIG. 2;

FIGS. 4A-4C show a non-limiting example controller 207;

FIG. 4D shows a non-limiting example controller that is connectable tocontroller 207;

FIG. 5 shows a non-limiting example user-interface screen fordownloading video games;

FIG. 6 shows non-limiting example contents of flash memory 332 andinternal/external memories 306, 332;

FIGS. 7A-7C are used to explain operation of an emulator;

FIGS. 8A-8D show non-limiting examples of data downloaded from server108 to video game system 102;

FIG. 9 is a block diagram showing example components of controller 207;

FIGS. 10A-10E are a flow chart showing an example shopping channelprocess; and

FIGS. 11A-11Q are non-limiting example screens used in the exampleshopping channel process.

DETAILED DESCRIPTION OF NON-LIMITING EXAMPLE EMBODIMENTS

FIG. 1 is a block diagram of a non-limiting example video game programdownload system 100 in which video game programs are downloaded over awide area network (WAN) 110 such as the internet from a server 108 toone or more of a video game system 102, a video game system 104 and apersonal computer 106. Video game system 102, video game system 104,personal computer 106 and server 108 are connected to wide area network110 via respective links 112, 114, 116 and 118. These links may, forexample, be dial-up or network links (e.g., via a cable modem) to aninternet service provider (ISP), links to wireless access points and thelike.

By way of example without limitation, video game system 102 is a Wii™video game console and video game system 104 is a DS™ hand-held videogame machine, both from Nintendo®. By way of further example withoutlimitation, personal computer 106 is a conventional PC optionallyconfigured with high-performance CPU(s) and graphics and audioprocessors for enhanced video game capabilities. While FIG. 1 shows onevideo game system 102, one video game system 104 and one personalcomputer 106, it will be readily apparent that multiple systems of eachtype may be present in system 100. Moreover, many different types ofhand-held and console video game systems and personal computers may beused system 100. It is also possible to provide separate servers foreach type of video game system. For example, all video game consoles ofa particular type (e.g., all Wii video game consoles) may be connectedto a first server and all hand-held systems of a particular type (e.g.,all DS hand-held video game machines) may be connected to a seconddifferent server.

The discussion below makes specific reference to downloading video gameprograms to video game system 102, which in this example is a video gameconsole. However, it will be appreciated that the systems and methodsdescribed herein are readily applicable to downloading video gameprograms to hand-held video game machines and/or to personal computersrunning video game programs.

Server 108 stores (or has access to) video game programs for one or moredifferent video game platforms. By way of example without limitation,server 108 may store video game programs for the Nintendo EntertainmentSystem (NES), Super Nintendo Entertainment System (SNES) and Nintendo 64(N-64) game systems. These video game programs may be selectivelydownloaded to video game system 102, video game system 104 and/orpersonal computer 106 in response to requests generated by inputsthereto. For example, video game system 102 may contact server 108 overthe wide area network 110 to receive display data for generating a menuof video game programs for display on an associated display device(e.g., a television). A user may make a selection from this menu usingan input device (e.g., game controller). In response, the selected videogame program is downloaded over wide area network 110 to video gamesystem 102 where the video game program is stored in memory (e.g.,on-board flash memory).

In one example embodiment, server 108 may in fact be made up of multipleservers. By way of example without limitation, server 108 may include avideo game program server for storing video game programs and respondingto requests from video game systems for downloading selecting ones ofthe video game programs thereto. Server 108 may also include an accountmanagement server for managing the accounts of the users of the downloadsystem. These different servers may run on the same computer system oreach server may run on one or more different interconnected computersystems.

The game programs stored on server 108 are generally not directlyexecutable by the game program executing system of, for example, videogame system 102. Consequently, server 108 stores (or has access to)programs that provide compatibility between the video game programs andgame system 102. Emulators are an example of programs that provide suchcompatibility. A particular emulator may be associated with one or moreor all video games for a particular platform. For example, one emulatormay be game-specific, i.e., developed so that a specific game can beexecuted on a particular target platform. Other emulators may be used toexecute multiple games on a particular target platform. Still otheremulators may be used to execute all games on a particular targetplatform.

Server 108 “bundles” an emulator with a selected game so that theselected game can be executed by the video game executing system of thetarget game system, in this case video game system 102. Thus, theselection by a player of a video game program for downloading results inboth that video game program and an emulator being downloaded to gamesystem 102. The user need not make any separate selection of anemulator. The video game program executing system of game system 102executes the emulator program so that the game corresponding to theselected video game program can be played on game system 102. Thedownloading and execution of the emulator program can be hidden from theuser. That is, the selection of the video game program causes the gameserver to bundle the emulator with the selected video game program and aselection to play a game causes execution of the emulator.

FIG. 2 shows a non-limiting example video game system 102 including avideo game console 200, a television 202 and a controller 207.

Video game console 200 is a “target platform” for the downloaded videogame programs and has a higher performance CPU and graphics processorthan, for example, the “native platforms” for which video game programsdownloaded from server 108 were developed (e.g., the NintendoEntertainment System (NES), Super Nintendo Entertainment System (SNES)and Nintendo 64 (N-64) game systems). The download systems and methodsdescribed herein permit video games developed for these lowerperformance native platforms to be played on a high performance targetplatform. This provides significant versatility for the target platformsince the target platform is able to execute video game programsdeveloped for its high performance CPU and graphics processor as well asvideo game programs developed for earlier generation (e.g., lesspowerful) platforms. The emulators, which as noted above may begame-specific, allow the target platform to substantially recreate thegaming experience provided by the earlier generation platforms. As willbe described below, the controller for video game console 200 has aconnector to which controllers similar or even identical to thecontrollers for the earlier generation platforms can be connected,further enhancing the recreation of the gaming experience provided bythe native platform.

Video game console 200 executes a game program or other applicationstored on optical disc 204 inserted into slot 205 formed in housing 210thereof. The result of the execution of the game program or otherapplication is displayed on display 201 of television 202 to which videogame console 200 is connected by cable 206. Audio associated with thegame program or other application is output via speakers 209 oftelevision 202. While an optical disk is shown in FIG. 2, the gameprogram or other application may alternatively or additionally be storedon other storage media such as semiconductor memories, magneto-opticalmemories, magnetic memories and the like.

Controller 207 wirelessly transmits data such as game control data tovideo game console 200. The game control data may be generated using anoperation section of controller 207 having, for example, a plurality ofoperation buttons, a key, a stick and the like. Controller 207 may alsowirelessly receive data transmitted from video game console 200. By wayof example without limitation, this data may include sound data foroutput via a speaker (not shown) of controller 207 or vibration controldata for controlling a vibration circuit (not shown) of controller 207.Any one of various wireless protocols such as Bluetooth (registeredtrademark) may be used for the wireless transmissions between controller207 and video game console 200.

A “nunchuk” controller 225 may be connected to controller 207. Althougha wired connection is shown in FIG. 2 between controller 207 and nunchukcontroller 225, a wireless connection may alternatively be used. Nunchukcontroller 225 may be held in the user's “other” hand (i.e., the handnot holding controller 207) and provides additional game control data tovideo game console 200.

Controller 207 also includes an imaging information calculation sectionfor capturing and processing images from light-emitting devices 208 aand 208 b. Although markers 208 a and 208 b are shown in FIG. 2 as beingabove television screen 201, they may also be positioned belowtelevision screen 201. In one implementation, a center point betweenlight-emitting devices 208 a and 208 b is substantially aligned with avertical center-line of television screen 201. The images fromlight-emitting devices 208 a and 208 b can be used to determine adirection in which controller 207 is pointing as well as a distance ofcontroller 207 from television screen 201. By way of example withoutlimitation, light-emitting devices 208 a and 208 b may be implemented astwo LED modules (hereinafter, referred to as “markers”) provided in thevicinity of screen 201 of television 202. The markers each outputinfrared light and the imaging information calculation section ofcontroller 207 detects the light output from the LED modules todetermine a direction in which controller 207 is pointing and a distanceof controller 207 from display screen 201 as mentioned above.

With reference to the block diagram of FIG. 3, video game console 200includes a RISC central processing unit (CPU) 304 for executing varioustypes of applications including (but not limited to) video gameprograms. CPU 304 executes a boot program stored in a boot ROM (notshown) to initialize video game console 200 and then executes anapplication (or applications) stored on optical disc 204, which isinserted in optical disk drive 308. User-accessible eject button 310provided on housing 210 of video game console 200 may be used to ejectan optical disk from disk drive 308.

In one example implementation, optical disk drive 308 receives bothoptical disks of a first type (e.g., of a first size and/or of a firstdata structure, etc.) containing applications developed to takeadvantage of the capabilities of CPU 304 and graphics processor (GPU)316 and optical disks of a second type (e.g., of a second size and/or asecond data structure) containing applications originally developed forexecution by a CPU and/or graphics processor having capabilitiesdifferent than those of CPU 304 and/or graphics processor 316. Forexample, the optical disks of the second type may be applicationsoriginally developed for the Nintendo GameCube platform.

CPU 304 is connected to system LSI 302 that includes graphics processingunit 316 with an associated graphics memory 320, audio digital signalprocessor (DSP) 318, internal main memory 322 and input/output (IO)processor 324.

IO processor 324 of system LSI 302 is connected to one or more USB ports326, one or more standard memory card slots (connectors) 328, WiFimodule 330, flash memory 332 and wireless controller module 340.

USB ports 326 are used to connect a wide variety of external devices tovideo game console 200. These devices include by way of example withoutlimitation game controllers, keyboards, storage devices such as externalhard-disk drives and memory sticks, printers, digital still and videocameras and the like. USB ports 326 may also be used for wired andwireless network (e.g., LAN) connections. In one example implementation,two USB ports 326 are provided.

Standard memory card slots (connectors) 328 are adapted to receiveindustry-standard-type memory cards (e.g., SD memory cards). In oneexample implementation, one memory card slot 328 is provided. Thesememory cards are generally used as data carriers but of course this useis provided by way of illustration, not limitation. For example, aplayer may store game data for a particular game on a memory card andbring the memory card to a friend's house for use when the game isplayed on the friend's video game console. The memory cards may also beused to transfer data between the game console and personal computers,digital cameras, and the like. In the example download system describedherein, downloaded video game programs may also be stored on memorycards connected to video game console 200 via connectors 328.

WiFi module 330 enables video game console 200 to be connected to awireless access point. The access point may provide internetconnectivity for on-line gaming with players at other locations (with orwithout voice chat capabilities), as well as web browsing, e-mail, filedownloads (including video game program downloads) and many other typesof on-line activities. In some implementations, WiFi module may also beused for communication with other game devices such as suitably-equippedhand-held game machines (e.g., the DS hand-held game machine). Module330 is referred to herein as “WiFi”, which is generally a designationused in connection with the family of IEEE 802.11 specifications.However, video game console 200 may alternatively or additionally usewireless modules that conform to other wireless standards.

Flash memory 332 stores, by way of example without limitation, game savedata, system files, internal applications for the console and downloadeddata (such as video game programs).

Wireless controller module 340 receives signals wirelessly transmittedfrom one or more controllers 207 and provides these received signals toIO processor 324. The signals transmitted by controller 207 to wirelesscontroller module 340 may include signals generated by controller 207itself as well as signals generated by other devices such as nunchukcontroller 225 that may be connected to controller 207.

Wireless controller module 340 may also wirelessly transmit signals tocontroller 207. By way of example without limitation, controller 207(and/or another game controller connected thereto) may be provided withvibration circuitry and vibration circuitry control signals may be sentvia wireless controller module 340 to control the vibration circuitry(e.g., by turning the vibration circuitry on and off). By way of furtherexample without limitation, controller 207 may be provided with (or beconnected to) a speaker (not shown) and audio signals for output fromthis speaker may be wirelessly communicated to controller 207 viawireless controller module 340. By way of still further example withoutlimitation, controller 207 may be provided with (or be connected to) adisplay device (not shown) and display signals for output from thisdisplay device may be wirelessly communicated to controller 207 viawireless controller module 340.

Proprietary memory card slots 346 are adapted to receive proprietarymemory cards. In one example implementation, two such slots areprovided. These proprietary memory cards have some non-standardfeature(s) such as a non-standard connector and/or non-standard memoryarchitecture. For example, one or more of the memory card slots 346 maybe adapted to receive memory cards used with the Nintendo GameCubeplatform. In this case, memory cards inserted in such slots can transferdata from games developed for the GameCube platform. In an exampleimplementation, memory card slots 346 may be used for read-only accessto the memory cards inserted therein and limitations may be placed onwhether data on these memory cards can be copied or transferred to otherstorage media such as standard memory cards inserted into slots 328.

One or more controller connectors 344 are adapted for wired connectionto respective game controllers. In one example implementation, four suchconnectors are provided for wired connection to game controllers for theNintendo GameCube platform. Alternatively, connectors 344 may beconnected to respective wireless receivers that receive signals fromwireless game controllers. These connectors enable players, among otherthings, to use controllers for the Nintendo GameCube platform when anoptical disk for a game developed for this platform is inserted intooptical disk drive 308.

A connector 348 is provided for connecting game console 200 to DC powerderived, for example, from an ordinary wall outlet. Of course, the powermay be derived from one or more batteries.

GPU 316 performs image processing based on instructions from CPU 304.GPU 316 includes, for example, circuitry for performing calculationsnecessary for displaying three-dimensional (3D) graphics. GPU 316performs image processing using graphics memory 320 dedicated for imageprocessing and a part of internal main memory 322. GPU 316 generatesimage data for output to television 202 by audio/video connector 314 viaaudio/video IC (interface) 312.

Audio DSP 318 performs audio processing based on instructions from CPU304. The audio generated by audio DSP 318 is output to television 202 byaudio/video connector 314 via audio/video IC 312.

External main memory 306 and internal main memory 322 are storage areasdirectly accessible by CPU 304. For example, these memories can store anapplication program such as a game program read from optical disc 204 byCPU 304, a downloaded video game program (and corresponding emulator)read from flash memory 332 by CPU 304, various types of data or thelike.

ROM/RTC 338 includes a real-time clock and preferably runs off of aninternal battery (not shown) so as to be usable even if no externalpower is supplied. ROM/RTC 338 also may include a boot ROM and SRAMusable by the console.

Power button 342 is used to power video game console 200 on and off. Inone example implementation, power button 342 must be depressed for aspecified time (e.g., one or two seconds) to turn the video game consoleoff so as to reduce the possibility of inadvertently turn-off. Resetbutton 344 is used to reset (re-boot) video game console 200.

With reference to FIGS. 4A-4C, example controller 207 includes a housing401 on which operating controls 402 a-402 i are provided. Housing 401has a generally parallelepiped shape and is sized to be convenientlygrasped by a player's hand. Cross-switch 402 a is provided at the centerof a forward part of a top surface of the housing 401. Cross-switch 402a is a cross-shaped four-direction push switch which includes operationportions corresponding to the directions designated by the arrows(front, rear, right and left), which are respectively located oncross-shaped projecting portions. A player selects one of the front,rear, right and left directions by pressing one of the operationportions of the cross-switch 402 a. By actuating cross-switch 402 a, theplayer can, for example, move a character in different directions in avirtual game world.

Cross-switch 402 a is described by way of example and other types ofoperation sections may be used. By way of example without limitation, acomposite switch including a push switch with a ring-shapedfour-direction operation section and a center switch may be used. By wayof further example without limitation, an inclinable stick projectingfrom the top surface of housing 401 that outputs signals in accordancewith the inclining direction of the stick may be used. By way of stillfurther example without limitation, a horizontally slidable disc-shapedmember that outputs signals in accordance with the sliding direction ofthe disc-shaped member may be used. By way of still further examplewithout limitation, a touch pad may be used. By way of still furtherexample without limitation, separate switches corresponding to at leastfour directions (e.g., front, rear, right and left) that outputrespective signals when pressed by a player can be used.

Buttons (or keys) 402 b through 402 g are provided rearward ofcross-switch 402 a on the top surface of housing 401. Buttons 402 bthrough 402 g are operation devices that output respective signals whena player presses them. For example, buttons 402 b, 402 c and 402 d arerespectively an “X” button, a “Y” button and a “B” button and buttons402 e, 402 f and 402 g are respectively a select switch, a menu switchand a start switch, for example. Generally, buttons 402 b through 402 gare assigned various functions in accordance with the application beingexecuted by video game console 200. In an exemplary arrangement shown inFIGS. 4A-4C, buttons 402 b, 402 c and 402 d are linearly arranged alonga front-to-back centerline of the top surface of housing 401. Buttons402 e, 402 f and 402 g are linearly arranged along a left-to-right linebetween buttons 402 b and 402 d. Button 402 f may be recessed from a topsurface of housing 401 to reduce the possibility of inadvertent pressingby a player grasping controller 207.

Button 402 h is provided forward of cross-switch 402 a on the topsurface of the housing 401. Button 402 h is a power switch for remoteon-off switching of the power to game console 200. Button 402 h may alsobe recessed from a top surface of housing 401 to reduce the possibilityof inadvertent pressing by a player.

Multiple (e.g., four) LEDs 404 are provided rearward of button 402 c onthe top surface of housing 401. Controller 207 is assigned a controllertype (number) so as to be distinguishable from other controllers usedwith video game console 200 and LEDs 404 may be used to provide a playera visual indication of this assigned controller number. For example,when controller 207 transmits signals to wireless controller module 340,one of the multiple LEDs corresponding to the controller type is lit up.

With reference to FIG. 4B, a recessed portion 408 is formed on a bottomsurface of housing 401. Recessed portion 408 is positioned so as toreceive an index finger or middle finger of a player holding controller207. A button 402 i is provided on a rear, sloped surface 408 a of therecessed portion. Button 402 i functions, for example, as an “A” buttonwhich can be used, by way of illustration, as a trigger switch in ashooting game.

As shown in FIG. 4C, an imaging element 405 a is provided on a frontsurface of controller housing 401. Imaging element 405 a is part of animaging information calculation section of controller 207 that analyzesimage data received from markers 208 a and 208 b. The imaginginformation calculation section has a maximum sampling period of, forexample, about 200 frames/sec., and therefore can trace and analyze evenrelatively fast motion of controller 207. Additional details may befound in application Ser. No. 11/532,328, filed on Sep. 15, 2006, whichclaims the benefit of Application No. 60/716,937, entitled “VIDEO GAMESYSTEM WITH WIRELESS MODULAR HANDHELD CONTROLLER,” filed on Sep. 15,2005; application Ser. No. 11/445,280, filed Jun. 2, 2006, which claimsthe benefit of Application No. 60/732,648, entitled “INFORMATIONPROCESSING PROGRAM,” filed on Nov. 3, 2005; and application Ser. No.11/441,146, filed May 26, 2006 which claims the benefit of ApplicationNo. 60/732,649, entitled “INFORMATION PROCESSING SYSTEM AND PROGRAMTHEREFOR,” filed on Nov. 3, 2005. The entire contents of each of theseapplications are expressly incorporated herein.

Connector 403 is provided on a rear surface of controller housing 401.Connector 403 is used to connect devices to controller 207. For example,a second controller of similar or different configuration may beconnected to controller 207 via connector 403 in order to allow a playerto play video games using game control inputs from both hands. Otherdevices including game controllers for other game consoles, inputdevices such as keyboards, keypads and touchpads and output devices suchas speakers and displays may be connected to controller 207 usingconnector 403.

One example device for connection to controller 207 via connector 403 isnunchuk controller 225 shown in FIG. 2. Nunchuk controller 225 includes,for example, an analog joystick and a trigger switch. If controller 207is held in a user's right/left hand, nunchuk controller 225 is held inthe user's left/right hand and may be used to provide additional userinputs to console video game console 200. By way of example withoutlimitation, controller 207 may be used to control a sword duringgameplay and nunchuk controller 225 may be used to control a shieldduring the gameplay.

As shown in the block diagram of FIG. 9, controller 207 includes athree-axis, linear acceleration sensor 907 that detects linearacceleration in three directions, i.e., the up/down direction (e.g.,Z-axis direction), the left/right direction (e.g., X-axis direction),and the forward/backward direction (e.g., Y-axis direction).Alternatively, a two-axis linear accelerometer or a one-axis linearaccelerometer may be used. Generally speaking, the accelerometerarrangement (e.g., three-axis or two-axis or one-axis) will depend onthe type of control signals desired. As a non-limiting example, thethree-axis or two-axis linear accelerometer may be of the type availablefrom Analog Devices, Inc. or STMicroelectronics N.V. Preferably,acceleration sensor 907 is an electrostatic capacitance orcapacitance-coupling type that is based on silicon micro-machined MEMS(micro-electromechanical systems) technology. However, any othersuitable accelerometer technology (e.g., piezoelectric type orpiezoresistance type) now existing or later developed may be used toprovide three-axis or two-axis linear acceleration sensor 907.

As one skilled in the art understands, linear accelerometers, as used inacceleration sensor 907, are only capable of detecting accelerationalong a straight line corresponding to each axis of the accelerationsensor. In other words, the direct output of acceleration sensor 907 islimited to signals indicative of linear acceleration (static or dynamic)along each of the two or three axes thereof. As a result, accelerationsensor 907 cannot directly detect movement along a non-linear (e.g.arcuate) path, rotation, rotational movement, angular displacement,tilt, position, attitude or any other physical characteristic.

However, through additional processing of the linear accelerationsignals output from acceleration sensor 907, additional informationrelating to controller 207 can be inferred or calculated (i.e.,determined), as one skilled in the art will readily understand from thedescription herein. For example, by detecting static, linearacceleration (i.e., gravity), the linear acceleration output ofacceleration sensor 907 can be used to determine tilt of the objectrelative to the gravity vector by correlating tilt angles with detectedlinear acceleration. In this way, acceleration sensor 907 can be used incombination with micro-computer 902 of controller 207 (or anotherprocessor) to determine tilt, attitude or position of controller 207.Similarly, various movements and/or positions of controller 207 can becalculated through processing of the linear acceleration signalsgenerated by acceleration sensor 907 when controller 207 containingacceleration sensor 907 is subjected to dynamic accelerations by, forexample, the hand of a user.

In another embodiment, acceleration sensor 907 may include an embeddedsignal processor or other type of dedicated processor for performing anydesired processing of the acceleration signals output from theaccelerometers therein prior to outputting signals to micro-computer902. For example, the embedded or dedicated processor could convert thedetected acceleration signal to a corresponding tilt angle (or otherdesired parameter) when the acceleration sensor is intended to detectstatic acceleration (i.e., gravity).

Returning to FIG. 9, imaging information calculation section 905 ofcontroller 207 includes infrared filter 928, lens 929, imaging element905 a and image processing circuit 930. Infrared filter 928 allows onlyinfrared light to pass therethrough from the light that is incident onthe front surface of controller 207. Lens 929 collects and focuses theinfrared light from infrared filter 928 on imaging element 905 a.Imaging element 905 a is a solid-state imaging device such as, forexample, a CMOS sensor or a CCD. Imaging element 905 a captures imagesof the infrared light from markers 208 a and 208 b collected by lens929. Accordingly, imaging element 905 a captures images of only theinfrared light that has passed through infrared filter 928 and generatesimage data based thereon. This image data is processed by imageprocessing circuit 920 which detects an area thereof having highbrightness, and, based on this detecting, outputs processing result datarepresenting the detected coordinate position and size of the area tocommunication section 906. From this information, the direction in whichcontroller 207 is pointing and the distance of controller 207 fromdisplay screen 201 can be determined.

Vibration circuit 912 may also be included in controller 207. Vibrationcircuit 912 may be, for example, a vibration motor or a solenoid.Controller 207 is vibrated by actuation of the vibration circuit 912(e.g., in response to signals from video game console 200), and thevibration is conveyed to the hand of the player grasping controller 207.Thus, a so-called vibration-responsive game may be realized.

As described above, acceleration sensor 907 detects and outputs theacceleration in the form of components of three axial directions ofcontroller 207, i.e., the components of the up-down direction (e.g.,Z-axis direction), the left-right direction (e.g., X-axis direction),and the front-rear direction (e.g., Y-axis direction) of controller 207.Data representing the acceleration as the components of the three axialdirections detected by acceleration sensor 907 is output tocommunication section 906. Based on the acceleration data which isoutput from acceleration sensor 907, a motion of controller 207 can bedetermined.

Communication section 906 includes micro-computer 902, memory 903,wireless module 904 and antenna 905. Micro-computer 902 controlswireless module 904 for transmitting and receiving data while usingmemory 903 as a storage area during processing. Micro-computer 902 issupplied with data including operation signals (e.g., cross-switch,button or key data) from operation section 902, acceleration signals inthe three axial directions (X-axis, Y-axis and Z-axis directionacceleration data) from acceleration sensor 907, and processing resultdata from imaging information calculation section 905. Micro-computer902 temporarily stores the data supplied thereto in memory 903 astransmission data for transmission to video game console 200. Thewireless transmission from communication section 906 to video gameconsole 200 is performed at predetermined time intervals. Because gameprocessing is generally performed at a cycle of 1/60 sec. (16.7 ms), thewireless transmission is preferably performed at a cycle of a shortertime period. For example, a communication section structured usingBluetooth (registered trademark) technology can have a cycle of 5 ms. Atthe transmission time, micro-computer 902 outputs the transmission datastored in memory 903 as a series of operation information to wirelessmodule 904. Wireless module 904 uses, for example, Bluetooth (registeredtrademark) technology to send the operation information from antenna 905as a carrier wave signal having a specified frequency. Thus, operationsignal data from operation section 902, the X-axis, Y-axis and Z-axisdirection acceleration data from acceleration sensor 907, and theprocessing result data from imaging information calculation section 905are transmitted from controller 207. Video game console 200 receives thecarrier wave signal and demodulates or decodes the carrier wave signalto obtain the operation information (e.g., the operation signal data,the X-axis, Y-axis and Z-axis direction acceleration data, and theprocessing result data). Based on this received data and the applicationcurrently being executed, CPU 304 of video game console 200 performsapplication processing. If communication section 906 is structured usingBluetooth (registered trademark) technology, controller 207 can alsoreceive data wirelessly transmitted thereto from devices including videogame console 200.

FIG. 4D shows an example of another type of controller that can becoupled to controller 207 via connector 403. Controller 450 may be used,for example, as a controller for downloaded games played on video gameconsole 200 that were originally developed for other gaming platforms.Controller 450 includes a cross-switch 452 that may be actuated to movea video game characters and objects in different up, down left and rightdirections. Analog sticks 454 and 456 may be used to move video gamecharacters and objects in any direction (i.e., 360 degrees). Buttons458, 459 and 460 may be used, for example, to start, quit and pause gameplay. Buttons 462, 464, 466 and 468 may be used for perform character orobject actions such as jumping, firing weapons, crawling, etc. Shoulderkeys (not shown in FIG. 4D) may also be used to perform character orobject actions. Inputs to controller 450 are sent to controller 207 viaconnector 403 and then to video game console 200 for processing.

FIG. 5 shows by way of example without limitation a user interface forvideo game console 200. This user interface is a channel menu that isdisplayed on television screen 201 and allows users to select one of aplurality of different “channels” for accessing various features of theconsole. The channel selection may be made by positioning an on-screencursor using the optical position detection feature of controller 207and then pressing “trigger” button 402 i. Of course, other techniquesfor making selections may be used and the systems and methods describedherein are in no way limited in this respect.

Disc channel 502 allows users to play game discs inserted in opticaldisc drive 308. As noted above, the inserted disc may contain games orother applications developed for video game console 200 or for adifferent console (e.g., the Nintendo GameCube).

Photo viewer channel 504 allows users to retrieve digital pictures froma memory card inserted into standard memory card slot(s) 328 of videogame console 200 and display them on television screen 201. Users alsocan manipulate the photos by, for example, zooming into details orcreating mosaics, puzzles or slide shows. A song stored on the memorycard may be played while, for example, a slide show is being presented.

Shopping channel 506 allows user to download video game content,including video game programs originally developed for other platforms(e.g., the aforementioned NES, SNES and N64 platforms). After usersdownload games from shopping channel 506, each downloaded game appearsin the channel menu of FIG. 5 as its own channel. To play the downloadedgame, users simply select the game's channel. In FIG. 5, channels 514,516, 518, 520 and 522 correspond to channels for downloaded games.

Forecast channel 508 allows users to access and display local weatherforecasts (e.g., retrieved from the Internet) after turning on videogame console 200. The weather information can be automatically updatedby accessing the Internet.

News channel 510 allows users to access and display local, national andworld news (e.g., retrieved from the Internet), which may be organizedinto a variety of topical categories. The news can be automaticallyupdated by accessing the Internet.

Internet channel 512 allows the user to access the internet to, forexample, access web sites.

Right arrow 526 may be selected to move a different page of the channelmenu. A left arrow (not shown) is present and may be selected when thereare pages to the left of the current page.

FIG. 6 shows an example memory map for flash memory 332. The map of FIG.6 is provided by way of example without limitation and the variousprograms may be readily organized in different manners and even usingdifferent and/or additional memories (e.g., memory cards inserted intostandard memory card slot 338).

Flash memory 332 stores a channel selection program 602 for generatingand displaying the channel menu and allowing users to make selectionsfrom the menu. Channel selection program 602 includes, by way of examplewithout limitation, a channel list, a display/select program and aselected channel start program.

Programs for each of the channels are also contained in memory 332.Consequently, memory 332 includes disc channel program 604, photoviewerchannel program 606, shopping channel program 608, forecast channelprogram 610, news channel program 612 and internet channel program 614.As noted above, after users download video game programs from shoppingchannel 506, each downloaded video game appears in the channel menu asits own channel. Thus, each of the downloaded games may be included inthe channel list. Each downloaded video game program is stored in flashmemory 332 along with a corresponding emulator program for providingcompatibility between the native platform of the downloaded video gameand the target platform (i.e., video game console 200). When aparticular one of the video game program is selected from the channelmenu, that video game program and the corresponding emulator are loadedinto internal/external memory 306/322 for execution by CPU 304.

As shown in FIG. 7A, each game program stored in flash memory 332includes by way of example without limitation a game title, a gamecontrol program, graphics data (and/or graphics processing program) andsound data (and/or a sound program). The emulator program for a givengame converts the program architecture for that game from anarchitecture for the game program's native platform to a game programarchitecture suitable for the target platform (i.e., video game console200). As shown schematically in FIG. 7B, an example emulator program mayinclude a first emulator for the CPU of the native platform and a secondemulator for the graphics processing unit of the native platform. Theemulator program can, for example, be realized by an instruction-wordconversion table, etc. to convert an instruction for the native gameplatform into an instruction that is executable by the target video gameplatform. For example, the instructions “A”, “D” and “T” shown in FIG.7A are generally not directly executable by CPU 304 of video gameconsole 200. These instructions are converted by the emulator programinto instructions “a1”, “b1” and “t1” which can be executed by CPU 304.Of course, it may not always be the case that there is a one-to-onecorrespondence between instructions for the native platform andinstructions for the target platform. Thus, an instruction for thenative platform may in fact be converted into two or more instructionsfor the target platform.

Additional programs and information may be associated with downloadedvideo games. These additional programs and information are perhaps mostconveniently incorporated into the emulator program for the downloadedvideo game program, but can easily be provided as separate programs orfiles. The systems and methods described herein are in no way limited bythe manner in which additional programs and information are associatedwith downloaded video games.

By way of example, a user manual for the game may be downloaded. Themanual may include information about the game, how to play the game,tips for playing the game, controller information, etc. By way offurther example, a high score program may be included to communicate auser's high score to server 108 for comparison to high scores for otherusers. By way of still further example, a multi-player program may beprovided so that games originally intended, for example, for play by oneplayer can be played by two or more players. By way of still furtherexample, a browser program may also be provided so that the user cannavigate through the user manual.

A rental program may also be provided so that the video game program isusable for a specified period of time rather than being “purchased”(i.e., licensed for use for an unlimited period of time). By way ofexample, the video game program usability may be limited by playing time(e.g., forty hours of game playing time) or by real time (e.g., twomonths with no limit on the game playing time within those two months).Some games (e.g., previews for new games) may be available only on arental basis. In other instances, certain games may be offered at oneprice for purchase and another (generally lower) price for rental. Therental program may be used to allow users to play a video game for atrial time period before deciding to purchase the corresponding videogame program.

Flash memory 332 (or some other memory of video game console 200) mayalso store a history of downloaded video games. In this way, if aparticular game is deleted from flash memory 332, the deleted video gameprogram can be “re-downloaded” without the user having to re-purchasethe program and incurring additional charges. A similar history can bealternatively or additionally maintained in a memory contained in oraccessible to server 108.

Although FIG. 6 shows downloaded games as being stored in flash memory332, these games may also be stored on memory cards (e.g., SD memorycards) inserted into memory card slot(s) 328.

Various digital rights management (DRM) techniques may be used tocontrol access and usage of the downloaded video games. For example, thedownloaded video games may be “locked” to a particular video gameconsole so that the video games can only be played on that console. Assuch, if a downloaded video game were downloaded and stored on a memorycard, that memory card could not be inserted into a different video gameconsole to play the game.

FIGS. 8A-8D show various non-limiting examples of data that can bedownloaded from server 108 to video game system 102. FIG. 8A shows thata video game program and an emulator program for that video game programmay “bundled” together for downloading. In an alternativeimplementation, the corresponding emulator program may already be storedby game system 102 (or be accessible thereto) and thus server 108 sendsthe video game program and an identifier for the emulator program to thegame system 102. Game system 102 may use the emulator program identifierto search for the emulator program in its own memory, in memoryaccessible thereto, or even on the internet. FIG. 8C shows sending alist that relates video game programs to their corresponding emulators.Thus, when a user downloads a particular video game program from server108, video game system can use the list to identify and retrieve (e.g.,from a web site) an emulator appropriate for the downloaded video gameprogram. FIG. 8D shows sending a first list relating video game programsto their native platforms and a second list of emulator programs and theplatforms emulated by these emulators. Thus, if a user downloads a videogame program for a particular platform, video game system 102 can usethe lists of FIG. 8D to identify and retrieve an appropriate emulatorprogram.

FIGS. 10A-10E are a flow chart showing an example shopping channelprocess flow when the shopping channel 506 is selected from the channelmenu shown in FIG. 5. The shopping channel allows users to, among otherthings, shop for and purchase (or possibly rent) video game programs.When the user finds a video program that he or she would like todownload, the user selects the desired video game program. The selectedvideo game program and its corresponding emulator are then downloaded tovideo game console 200.

The process flow begins with the display of the channel menu of FIG. 5at ST 1001. When the shopping channel 506 is selected using controller207, the process determines at ST 1002 whether the shopping channel isundergoing maintenance. If so, a display to this effect is displayed atST 1003 and the process returns to ST 1001. If not, the processdetermines at ST 1004 whether a shopping channel update is available. Ifan update is available, a display prompting the user to obtain theupdate is displayed at ST 1005 and the user is invited to return to theshopping channel when the update is obtained. The process then returnsto ST 1001. The update may, for example, be an update to the shoppingchannel program stored in flash memory 332 that provides additionalchannels, new features, and the like.

If no update is available, the process determines at ST 1006 whether thecountry currently selected in the settings for video game console 200has changed since the last time the user connected to the shoppingchannel. If so, the user is warned at ST 1007 that the country settinghas changed and is asked to confirm that the new setting is okay. If theuser confirms that the new setting is okay, the process proceeds to ST1008. Otherwise, the process returns to ST 1001 where the channel menuof FIG. 5 is displayed (i.e., the shopping channel program is ended).

At ST 1008, the process determines whether the currently selectedcountry is one in which the shopping channel is available. If theshopping channel is not available in the currently selected country, adisplay to this effect is displayed at ST 1009 and the process thenreturns to ST 1001 where the channel menu of FIG. 5 is displayed. If theshopping channel is available in the currently selected channel, theprocess determines at ST 1010 whether this is the first time the userhas accessed the shopping channel. If so, the process provides a displayat ST 1011 asking the user to wait until a connection is establishedwith server 108 for initial settings processing at ST 1013.

If this is not the first time the user has accessed the shopping channelthe process proceeds from ST 1010 to ST1012 where the process determineswhether the current country setting is changed from the country settingthe last time the shopping channel was accessed. If so, the processproceeds to the initial settings processing at ST 1013. If not, theprocess proceeds to ST 1014.

The initial settings processing allows the user to set various shoppingchannel options. For example, certain countries or regions may haveso-called “loyalty” accounts where certain purchases may result in userbenefits such as discounts on future purchases, free gifts for a certainamount of total purchases, etc. The initial settings processing allows auser to link his or her shopping channel account activities to thisloyalty account. The initial settings processing also allows a user todelete his or her shopping channel account. The user may want to deletean account if, for example, the video game console associated with theaccount is being sold to another user. After initial settingsprocessing, the process proceeds to ST 1014.

At ST 1014, a welcome screen is displayed. A non-limiting examplewelcome screen is shown in FIG. 11A. The welcome screen may containlinks 1100 to one or more notices about product availability, pricing,shipping information and the like. The user may select one of the links1100 whereby the process proceeds to ST 1015 to display the noticecorresponding to the selected link. The display of the notice at ST 1015includes a link for returning back to the display of the welcome screen.The welcome screen of FIG. 11A also contains a “start shopping” link1101 which can be selected by the user to proceed to the display of ashopping channel main screen at ST 1016. The welcome screen alsoincludes a number of banner icons 1102-1, 1102-2 . . . 1102-6 showingvideo programs available for download. Selection of one of these bannericons provides a short-cut to ST 1020 for purchasing the video gameprogram corresponding to the selected icon.

At ST 1016, a shopping channel main screen is displayed. A non-limitingexample main screen is shown in FIG. 11B. The main screen includes alink 1103 back to the welcome screen of FIG. 11A. The main screen alsoincludes links 1104, 1105, 1106, 1107 and 1108 which cause the processto proceed to ST 1017, ST 1036, ST 1037, ST 1058 and ST 1060,respectively. Each of these steps of the process will be described ingreater detail below.

At ST 1017, a virtual console top (or main) page is displayed. Anon-limiting example top main page is shown in FIG. 11D. The main pageof FIG. 11D includes links 1117 and 1119 to a video game program catalogpage shown in FIG. 11F. Selecting link 1117 results in the video gameprograms on the catalog page being ordered in terms of their addition tothe shopping channel while selecting link 1119 results in the video gameprograms on the catalog page being alphabetically ordered. Selectinglink 1116 brings the user to a hardware select page, a non-limitingexample of which is shown in FIG. 11E. Selecting link 1114 brings to theuser to a help manual page, an example of which is shown in FIG. 11C.Selecting link 1115 brings the user back to the main screen of FIG. 11B.Selecting link 1121 brings the user back to previous page. Link 1122provides a display of shopping points and, if selected, brings the userto a shopping points top page, a non-limiting example of which is shownin FIG. 11M.

In response to the user selecting link 1117 at ST 1017, the processproceeds to a video catalog display at ST 1019 which is ordered in termsof the times at which the games became available in the catalog. Inresponse to the user selecting link 1119 at ST 1017, the processproceeds to a video catalog display at ST 1019 which is alphabeticallyordered. In response to the user selecting link 1116 at ST 1017, theprocess proceeds to ST 1018. At ST 1018, the user selects a particulargame platform and the process proceeds to a video catalog display at ST1019 which is limited to available video game programs for the platformselected at ST 1018.

The hardware selection screen of FIG. 11E shows graphical links 1125-1,1125-2, 1125-3, 1125-4 and 1125-5, each of which corresponds to adifferent video game platform. Selecting one of these graphical linksresults in the video game catalog of FIG. 11F being limited to videogame programs for the platform corresponding to the selected link. Thescreen of FIG. 11E also includes a link 1123 for bringing the user to ahelp manual page and a link 1124 for bringing the user back to the mainscreen of FIG. 11B. Link 1126 is for bringing the user back to previouspage and link 1127 provides a display of shopping points and, ifselected, brings the user to a shopping points top page.

In still other example implementations, the video game programs in thecatalog can be ordered or listed/not listed on the basis of gamecharacters, genre, publisher, parental rating or any other relevantcharacteristic of the video game programs.

The video game program catalog page shown in FIG. 11F contains multiplelinks 1128-1, 1128-2 and 1128-3, each of which corresponds to adifferent game. Link 1128-1 include a “new arrival icon” indicating thatthe corresponding video game program was recently added to the catalog(e.g., within some specified number of days before the current day), anupdate icon 1130 indicating the availability of an update for thecorresponding video game program, a screen shot 1131 from thecorresponding video game program, a platform designator 1132 designatingthe native platform for the corresponding video game program, publisherinformation 1133 identifying the publisher of the corresponding videogame program and a price indicator 1134 indicating the purchase price ofthe corresponding game. In the FIG. 11F example, price is expressed interms of points, where each point corresponds to an amount of money(e.g., $0.01). Of course, the price information may be displayed invarious manners including as a monetary amount. If the game has alreadybeen purchased, a “purchased” indicator 1135 is provided in place of theprice indicator. The video game program catalog page includes ascrolling bar for scrolling the display to see additional video gamelinks on the page. The catalog may include multiple pages and thesemultiple pages are accessible using the left and right arrows 1137 a and1137 b. A current page/total page indicator 1138 indicates the currentpage and the total number of pages (e.g., the indicator 1138 indicatesthat the user is viewing page 3 of 5 total pages). A back link 1140brings the user back to the previous page and link 1139 provides adisplay of shopping points and, if selected, brings the user to ashopping points top page.

When the user selects one of the links on the FIG. 11F screen at ST1019, the process proceeds to ST 1020. At ST 1020, a software purchasescreen is displayed, a non-limiting example of which is shown in FIG.11G. The screen of FIG. 11G includes game details such as a screen shot1141, general game information 1142 (e.g., video game release date,publisher information, number of players, game genre and the like), andcontroller icons 1143, 1144 and 1145 indicating the types of controllersthat can be used to play the game. The game details also include gamerating information 1146 and selecting a rating icon brings the user to arating information page, a non-limiting example of which is shown inFIG. 11I. The FIG. 11G screen also includes a back link 1148 forbringing the user back to the previous page, a points display/link 1149and a “more details” link 1150 that a user can select to find outadditional details about the video game. A download link 1147 indicatesthe price of the game (e.g., 500 points). If the game has previouslybeen purchased, the price indicator indicates that the game is “free”(e.g., 0 points).

If the user selects the “more details” link 1150 at ST 1020, the processproceeds to ST 1021. At ST 1021, a “more details” screen is displayed, anon-limiting example of which is shown in FIG. 11H. If the user selectsa rating icon 1146 at ST 1020, the process proceeds to ST 1022. At ST1022, a “rating information” screen is displayed, a non-limiting exampleof which is shown in FIG. 11I. If the user selects download link 1147 atST 1020, the process proceeds to ST 1023.

The “more details” screen of FIG. 11H provides further details about thecorresponding video game program. By way of example without limitation,the further details include text 1152 (e.g., detailed description,player comments, reviews, etc.) and multiple (e.g., two) screen shots1153 from the video game. A scroll bar 1154 allows the user to scrollthe display up and down. The “more details” screen also includes a link1155 for bringing the user to a help screen; a link 1156 for bringingthe user back to the shopping channel main page of FIG. 11B; a “back”link 1157 for bringing the user back to the previous page (e.g., thepurchase screen of FIG. 11G); and a points indicator/link 1158.

The “rating information” screen of FIG. 11I provides further details ofthe rating for the corresponding video game program. For example, theEntertainment Software Rating Board (ESRB) provides ratings for videogames in the United States and Canada (e.g., E for everyone; T for teen;M for mature; etc.). The “rating information” screen may include text1159 setting forth the rating and the game content on which the ratingis based. A scroll bar 1162 allows the user to scroll the display up anddown. The “rating information” screen also includes a link 1160 forbringing the user to a help screen; a link 1161 for bringing the userback to the shopping channel main page of FIG. 11B; a “back” link 1163for bringing the user back to the previous page (e.g., the purchasescreen of FIG. 11G); and a points indicator/link 1164.

At ST 1023, the process determines whether parental settings have beenturned on. Parental settings allow parents or guardians to limit achild's access to, for example, only those games having a rating lowerthan a parentally set rating. By way of illustration, a parent may limita child's access to games having a “T for teen” rating or lower. Thiswould prevent a child from accessing games having an “M for mature”rating. By way of further illustration, the parental settings may beused to condition the downloading of any game upon entry of a parentalPIN code. Thus, the parent may control the downloading of games.

If the parental settings are off, the process proceeds to ST 1028. At ST1028, a “caution” screen is displayed. A non-limiting example of a“caution” screen is shown in FIG. 11J.

If the parental settings are on, the process proceeds to ST 1024. At ST1024, the user is prompted to enter a parental PIN number. The processdetermines at ST 1025 whether the entered parental PIN number iscorrect. The correctness of the entered PIN number may be determined,for example, by comparing the entered PIN number with a previouslyentered PIN stored in flash memory 332 of video game console 200. If theentered PIN number is correct, the process proceeds to ST 1028 at whichthe “caution” screen is displayed as noted above.

If the entered PIN number is not correct, the process proceeds to ST1026. At ST 1026, a screen indicating that an incorrect PIN number hasbeen entered is displayed and the process then proceeds to ST 1027 wherethe process determines whether three consecutive PIN entry errors haveoccurred. If not, the process returns to ST 1024 and the user canre-enter the PIN number. If so, the process proceeds to ST 1061 and themain shopping channel screen of FIG. 11B is displayed.

The “caution” screen of FIG. 11J includes information 1165 cautioningthe user that a certain type of controller(s) is needed to play thegame. If the user does not possess one of the required types ofcontrollers, the user may decide to end the download process. The“caution” screen also includes a link 1166 for bringing the user to ahelp screen; a link 1167 for bringing the user back to the shoppingchannel main page of FIG. 11B; a “back” link 1168 for bringing the userback to the previous page (e.g., the purchase screen of FIG. 11G); apoints indicator/link 1169; and an “ok” link 1170 for bringing the userto a “confirm purchase” screen. The “ok” link is selected if the userwishes to continue the video game program purchase process.

If the user selects the “ok” link from the screen of FIG. 11J at ST1028, the process proceeds to ST 1029. At ST 1029, a “confirm purchase”screen is displayed. A non-limiting example of a “confirm purchase”screen is shown in FIG. 11K. The “confirm purchase” screen of FIG. 11Kincludes information 1171 such as a user's current number of points, thenumber of points required for the download and the number of points thatwill remain after the download. Information 1171 may also show thenumber of open blocks in the flash memory 332 of the user's console, thenumber of blocks contained in the downloaded video game program and thenumber of blocks that will remain in the flash memory after thedownload. If the user wishes to download the video game program afterreviewing this information, “yes” link 1174 is selected. If the userwishes to terminate the downloading process, “no” link 1176 is selected.The “confirm purchase” screen also includes a link 1172 for bringing theuser to a help screen; a link 1173 for bringing the user back to theshopping channel main page of FIG. 11B; and a points indicator/link1175.

If the user selects the “no” link 1176 from the “confirm purchase”screen at ST 1029, the process returns to ST 1019.

If the user selects the “yes” link 1174 from the “confirm purchase”screen at ST 1029, the process proceeds to ST 1030. At ST 1030, a“receiving software” screen is displayed. A non-limiting example of a“receiving software” screen is shown in FIG. 11L. The “receivingsoftware” screen is displayed while the selected video game and itscorresponding emulator are being downloaded and includes information1177 indicating the name of the game being downloaded, the number ofpoints the user will have after the download and the number of freeflash memory blocks the console will have after the download. A graphicdownload progress indicator 1178 may be used to indicate the progress ofthe download. The “receiving software” screen also includes a pointsindicator 1179. In this example process, points indicator 1179 does notfunction as a link to some other display screen.

After the receiving at ST 1030, the process determines at ST 1031whether the program was received successfully. If not, the processproceeds to ST 1032 where a receiving error screen is displayed. Thereceiving error screen informs that user that there was an errordownloading the video game program and provides the user an opportunityto try again to download the game. If the user opts to try anotherdownload, the process returns to ST 1030. If this download is notsuccessful as determined at ST 1031, the error screen is displayed afterwhich the process proceeds to ST 1061 and the display of the mainshopping channel page shown in FIG. 11B. The error screen may include,for example, information (e.g., website, telephone number) forassistance along with an error number for the particular error thatoccurred during the download. This error number can be used when thewebsite is visited or the telephone number called to identify the errorand its possible solutions.

If the process determines at ST 1031 that the game is successfullydownloaded, the process proceeds to ST 1033 and a “receiving successful”screen is displayed. After reviewing the contents of the “receivingsuccessful” screen, the user can select a link on the screen (e.g., an“ok” link) and the process then proceeds to ST 1034. At ST 1034, theprocess determines whether software other than a video game has beendownloaded. If so, the process proceeds to ST 1061. If not (i.e., avideo game has been downloaded), a health and safety screen is displayedat ST 1035. After reviewing the health and safety screen, the user mayactuate a specified button on controller 207 and the process thenproceeds to ST 1061.

At ST 1016, the user may select link 1105 and the process proceeds to ST1036. At ST 1036, a top screen for downloading software developed forconsole 200 is displayed. From this top screen, the user may accessother screens (not shown) for downloading the software.

At ST 1016, the user may select link 1106 to add “points” to the user'saccount and the process then proceeds to ST 1037. At ST 1037, an “addpoints” screen is displayed. A non-limiting example “add points” screenis shown in FIG. 11M. The “add points” screen includes information 1180about points and shows an image of a pre-paid card of 1000 points. Theuser may add points by selecting link 1183 to redeem a pre-paid pointscard or by selecting link 1184 to buy points using a credit card. The“add points” screen also include a link 1181 for bringing the user to ahelp screen; a link 1182 for bringing the user back to the shoppingchannel main page of FIG. 11B; a “back” link 1185 for bringing the userback to the previous page (i.e., the main shopping channel screen ofFIG. 11B); and a points indicator 1186. In this example process, pointsindicator 1186 does not function as a link to any other display screen.

If the user selects link 1183 for redeeming a pre-paid points card at ST1037, the process proceeds to ST 1052. At ST 1052, a “card number input”screen is displayed. A non-limiting example “card number input” screenis shown in FIG. 11N. The screen provides information 1187 about how tofind a card activation number. In one example implementation, theactivation number is found by scratching off material from the back ofthe card to reveal the number. The screen also includes an area forinputting the activation number. If the user positions a cursor on theinput area and “clicks” on the area, a software keyboard appears for theuser's use in inputting the number. After inputting the activationnumber, the user can select link 1192 to continue the redemptionprocess. The “card number input” screen also includes a link 1190 thatcan be selected by the user to quit the redemption process; a link 1188for bringing the user to a help screen; a link 1189 for bringing theuser back to the shopping channel main page of FIG. 11B; and a pointsindicator 1191.

After inputting the activation number at ST 1052, the process determinesat ST 1053 whether redeeming the card will result in the user's accountcontaining more than a specified maximum number of points. If so, theprocess proceeds to ST 1054 and the user is informed by a display screenthat the card cannot be redeemed and the process returns to ST 1052. Ifredeeming the card will not cause the user's account to exceed thespecified maximum number of points, the process determines at ST 1055whether the input activation number is correct. If the entered number isnot correct, the process proceeds to ST 1056 and the user is informed bya display screen that the entered activation number is incorrect. Theuser can select a “try again” link and the process will then return toST 1052. If the entered activation number is correct, the processproceeds to ST 1057 and a “confirm redemption” screen is displayed. Anon-limiting example “confirm redemption” screen is shown in FIG. 11O.The screen includes but is not limited to information 1193 indicatingthe number of points on the card being redeemed. The user can redeem thecard by selecting “redeem” link 1198 and the user choose not to redeemthe card by selecting “do not redeem” link 1196. The “confirmredemption” screen also includes a link 1194 for bringing the user to ahelp screen; a link 1195 for bringing the user back to the shoppingchannel main page of FIG. 11B; and a points indicator 1197.

If the user selects the “redeem” link 1198, the process continues to ST1050 and a screen is provided confirming the user's point balance. Fromthis screen, the user may select to generate a purchase statement(receipt) in which case the process proceeds to ST 1049. Aftergenerating the receipt, the user may return to the balance confirmingscreen and thereafter the process continues to ST 1061.

If the user selects the “do not redeem” link 1196 from the “confirmredemption” screen of FIG. 11O, the process returns to ST 1052 where theuser is prompted to input an activation code.

Various types of pre-paid cards may be used. By way of example, cardsmay be game-specific and allow a user only to purchase a specific videogame program. By way of further example, cards may be platform-specificand allow a user to purchase video game programs for a particularplatform (e.g., the NES platform). By way of still further example,cards may be character-based and allow a user to purchase video gameprograms featuring a certain character. By way of still further example,cards may be game-series-based and allow a user to purchase video gameprogram from a particular series of video games.

If the user chooses the credit card option at ST 1037, the processproceeds to ST 1038 and a “points selection” screen is displayed. Anon-limiting example “points selection” screen is shown in FIG. 11P. Asshown in FIG. 11P, the screen includes options generally indicated at1199 allowing the user to select to purchase 1000, 2000, 3000 or 5000points. The points indicator 1203 shows the current number of points inthe user's account. Certain ones of the points options may be not beselectable by the user if the purchase of these points would cause theuser's account to exceed some maximum number of points (e.g., 20000points). In the example screen of FIG. 11P, the user has 15200 points inhis or her account. Because the purchase of 5000 points would cause theuser's account to exceed the maximum allowable number of points (i.e.,20000 points), the user may not select the 5000 point option. Thisoption may be “grayed out” or simply not displayed. The screen alsoincludes a link 1200 for bringing the user to a help screen; a link 1201for bringing the user back to the shopping channel main page of FIG.11B; and a “back” link 1202 for bringing the user back to the previouspage.

After the user selects one of the points options from the screen of FIG.11P, the process proceeds to ST 1039 where the user is prompted toselect a particular credit card. After the user makes the credit cardselection at ST 1039, the process proceeds to ST 1040 where the user isprompted to enter credit card information (e.g., credit card number,expiration date and security code) for the selected credit card. At ST1040, the user can select a link to obtain more information about thesecurity code (e.g., what it is, where to find it on the credit card,how the security code is used, etc.) and the process proceeds to ST 1041where such security code information is displayed. After viewing thesecurity code information, the user can select a “back” link to returnto the credit card information entry screen. At ST 1040, the user canalso select a link to obtain more information about credit card security(e.g., how credit card information is used, the details of theencryption of credit card information, how personal information isstored and used, etc.). After viewing the security information, the usercan select a “back” link to return to the credit card information entryscreen.

After entering credit card information at ST 1040, the user selects alink to continue and the process continues to ST 1043 and the processdetermines whether an address input is required. This determination maybe based, for example, on the country setting. If address input isrequired, the process proceeds to ST 1044 and the user is presented witha credit card address input screen for inputting the billing address ofthe credit card. After the user inputs this information, the processproceeds to ST 1045. If no address input is required, the processproceeds directly to ST 1045 and the user does not have to enter anybilling address information.

At ST 1045, the process determines whether the input credit cardinformation is correct. If not, the process proceeds to ST 1046 and anerror screen is displayed. The error screen informs the user thatincorrect credit card information has been entered. The screen mayfurther inform the user of the nature of the incorrect entry(ies). Forexample, the screen may indicate that the credit card has expired, thatthe entered billing address information is incorrect, etc. Afterreviewing the error screen at ST 1046, the user may select a link toreturn to the credit card select screen at ST 1039.

If the process determines that the input credit card information iscorrect at ST 1045, the process proceeds to ST 1047 and a “purchaseconfirmation” screen is displayed. The “purchase confirmation” screenasks the user to confirm the purchase of the points using the creditcard and may include information such as the total amount of moneycharged to the credit card, the total number of points being purchased,any applicable taxes, and restrictions on the use of the points (e.g.,they have no monetary value and cannot be redeemed for cash; the pointsare usable only on the user's console; the money paid for the points isnon-refundable and the points are non-transferable; etc.).

If the user does not wish to complete the purchase of points and selectsa “no” link at ST 1047, the process returns to the purchase pointselection screen at ST 1038 (FIG. 11P). If the user selects a “yes” linkat ST 1047 to complete the point purchase, the process proceeds to ST1048 where processing authentication is performed. The user may bepresented with a screen asking the user to wait while the credit card isauthorized. If the credit card is authorized at ST 1048, the processproceeds to ST 1050. If there is an error in the credit cardauthorization, the process proceeds to ST 1049 and the user is informedof the nature of the error. After viewing the error screen, the user mayreturn to ST 1038 where the point selection screen is displayed.

At ST 1016, the user may select link 1107 to view a record of accountactivity. Specifically, if the user selects link 1107, the processproceeds to ST 1058 and a usage record screen is displayed. Anon-limiting example usage record screen is shown in FIG. 11Q. Thescreen of FIG. 11Q shows a table of events in which each event has anassociated date, event type, content associated with the event, pointscost of the event and points balance after the event. If the userselects one of the events, the process proceeds to ST 1059 and apurchase statement screen showing additional information associated withthe selected event is displayed. The user may select a “back” link fromthe purchase statement screen to return to the usage record screen ofFIG. 11P. The usage record screen also includes a link 1205 for bringingthe user to a help screen; a link 1206 for bringing the user back to theshopping channel main page of FIG. 11B; a “back” link 1207 for bringingthe user back to the previous page; and points indicator/link 108. Leftand right arrows 1209 a and 1209 b may be used to move the differentpages of the usage record.

In the above-described systems and method, a video game program can bedownloaded from server 108 to a target video game platform (e.g., videogame system 102). A processing system of server 108 receives a downloadrequest from the target video game platform requesting downloading of avideo game program that executes on a native video game platformdifferent than the target video game platform. The target video gameplatform may provide an interface that allows a user to search for andselect a particular video game program for download. The downloadrequest is generated in response to the selection of the particularvideo game program. In response to the download request, server 108sends the requested video game program to the target video game platformalong with a program for providing compatibility between the target andnative video game platforms. The program for compatibility may, forexample, be an emulator.

Generally speaking, the systems, methods, and techniques describedherein may be implemented in digital electronic circuitry, computerhardware, firmware, software, or in combinations of these elements.Apparatus embodying these techniques may include appropriate input andoutput devices, a computer processor, and a computer program producttangibly embodied in a machine-readable storage device for execution bya programmable processor. A process embodying these techniques may beperformed by a programmable processor executing a program or script ofinstructions to perform desired functions by operating on input data andgenerating appropriate output. The techniques may be implemented in oneor more computer programs or scripts that are executable on aprogrammable system including at least one programmable processorcoupled to receive data and instructions from, and to transmit data andinstructions to, a data storage system, at least one input device, andat least one output device. Suitable processors include, by way ofexample, both general and special purpose microprocessors. Generally, aprocessor will receive instructions and data from a read-only memoryand/or a random access memory. Storage devices suitable for tangiblyembodying computer program instructions and data include all forms ofvolatile and non-volatile memory, including by way of examplesemiconductor memory devices, such as Erasable Programmable Read-OnlyMemory (EPROM), Electrically Erasable Programmable Read-Only Memory(EEPROM), and flash memory devices; magnetic disks such as internal harddisks and removable disks; magneto-optical disks; and Compact DiscRead-Only Memory (CD-ROM). Any of the foregoing may be supplemented by,or incorporated in, specially-designed ASICs (application-specificintegrated circuits). The computer program instructions or scripts mayalso be provided as data signals embodied in a carrier wave or otherpropagation medium via a communication link (e.g., a modem or wired orwireless network connection).

The above systems and methods are described by way of example and theappended claims are not intended to limited to these examples, but areintended to cover systems and methods including various modificationsand equivalent arrangements.

I claim:
 1. An information processing system configured to provide atarget device, comprising a target platform, with one or more softwareprograms available for download, the system comprising: a processingsystem having at least one processor, the processing system configuredto: generate information used in creating a user interface for displayon the target device, the user interface displaying at least one or moresoftware programs and, for each software program in the list,information related to a corresponding native platform and an inputusable with the software program; and receive a request from the targetdevice requesting download of at least one selected software program, ofthe one or more software programs, that executes using a native platformdifferent than the target platform and, in response thereto, sends theat least one selected software program along with a program forproviding compatibility between the target platform and the nativeplatform.
 2. The information processing system according to claim 1,wherein the program for providing compatibility comprises an emulatorprogram.
 3. The information processing system according to claim 1,wherein the processing system comprises part of a server that maintainscommunication to one or more target devices using a data network.
 4. Theinformation processing system according to claim 1, wherein the userinterface further displays information related to a rating of acorresponding program in the list of one or more software programs. 5.The information processing system according to claim 1, wherein the userinterface further displays information related to at least a price ofthe one or more software programs.
 6. The information processing systemaccording to claim 1, wherein the one or more software programs arestored in the information processing system and the user interfacefurther displays an electronic store for purchasing and/or renting theone or more software programs stored in the information processingsystem.
 7. The information processing system according to claim 1,wherein the information processing system is configured to bundle theprogram for providing compatibility, between the target platform and thenative platform, with the selected software program.
 8. The informationprocessing system according to claim 1, wherein the informationprocessing system is further configured to manage one or more useraccounts using an account management server.
 9. The informationprocessing system according to claim 1, wherein the informationprocessing system is further configured store information related to oneor more user accounts including, at least, an amount of credit availablefor each user account.
 10. The information processing system accordingto claim 9, wherein the amount of credit is deducted when a softwareprogram is selected for purchase and/or rental.
 11. The informationprocessing system according to claim 9, wherein the amount of credit isincreased when payment is made using a selected payment method.
 12. Theinformation processing system according to claim 1, wherein theinformation processing system uses digital rights management techniquesto control access and use of the selected software program.
 13. Theinformation processing system according to claim 1, wherein upon userselection, the processing system is further configured to generateinformation used for display via the user interface that includesadditional information regarding the selected software program.
 14. Theinformation processing system according to claim 13, wherein theadditional information includes information related to one or more typesof input that can be used in executing the selected software program.15. The information processing system according to claim 1, wherein theuser interface comprises a display for confirming purchase and/or rentalof a selected software program from the one or more software programs.16. A software program download method implemented using an informationprocessing system having at least one processor, the method comprising:generating information used in creating a user interface for display ona target device having a target platform, the user interface displayingat least one or more software programs and, for each software program inthe list, information related to a corresponding native platform and aninput usable with the software program; and receiving a request from thetarget device requesting download of at least one selected softwareprogram, of the one or more software programs, that executes using anative platform different than the target platform and, in responsethereto, sending the at least one selected software program along with aprogram for providing compatibility between the target platform and thenative platform.
 17. A non-transitory computer-readable storage mediumcomprising computer readable code embodied therein for execution usingan information processing device having at least one processor, thecomputer readable code, when executed using the at least one processor,causing the information processing device to: generate information usedin creating a user interface for display on a target device having atarget platform, the user interface displaying at least one or moresoftware programs and, for each software program, information related toa corresponding native platform and an input usable with the softwareprogram; and receive a request from the target device requestingdownload of at least one selected software program, of the one or moresoftware programs, that executes using a native platform different thanthe target platform and, in response thereto, send the at least oneselected software program along with a program for providingcompatibility between the target platform and the native platform.
 18. Atarget device comprising at least one processor and a target softwareplatform, the target device configured to: generate a user interface fordisplay, the user interface displaying at least one or more softwareprograms available for download from a remotely located source deviceand, for each software program, information related to a correspondingnative platform and one or more types of input usable with the softwareprogram; and send a request from the target device to the source devicerequesting a software program that executes using a native platformdifferent than the target software platform and, in response thereto,receive the requested software program along with a program forproviding compatibility between the target platform and the nativeplatform.
 19. The target device according to claim 18, embodied as ahand-held information processing device.
 20. The target device accordingto claim 18, embodied as a console system including audio and videooutputs supplied to a television.
 21. The target device according toclaim 18, wherein the target device is configured to begin execution ofthe program for providing compatibility when the requested softwareprogram is opened for execution.
 22. The target device according toclaim 18, wherein the target device is configured to access a web-sitestoring the program for providing compatibility and download the programfor providing compatibility for execution with the requested softwareprogram.
 23. The target device according to claim 18, wherein the targetdevice receives an identifier for a program for providing compatibility,between the target platform and the native platform, stored in a memoryof the target device, and the target device is configured to execute theprogram for providing compatibility associated with the identifier alongwith executing the requested software program.